III. Installation ----------------- III.1 - Clavier ~~~~~~~~~~~~~~~ Par défaut Arch Linux démarre avec un clavier US en mode console. Il faut donc modifier cette configuration pour définir un clavier Français. Pour cela tapez la commande suivante : :: loadkeys fr-latin9 III.2 - Mode d'amorçage ~~~~~~~~~~~~~~~~~~~~~~~ Dans cette documentation je partirai du principe que l'installation de Arch Linux se fera en mode UEFI et non en mode BIOS. Si votre ordinateur est très ancien et non compatible UEFI, veuillez vous référer à la documentation officielle de Arch Linux pour une installation en mode BIOS. III.3 - Connexion réseau ~~~~~~~~~~~~~~~~~~~~~~~~ Veuillez vérifier que votre connexion filaire soit bien détectée avec la commande : :: ip link Vous devriez en plus de l'interface ``lo`` voir une deuxième interface qui correspond à votre carte réseau filaire, comme ``enp0s3`` ici. Elle devrait avoir comme status ``UP``. Si vous ordinateur est connecté à une Box équipée d'un serveur DHCP, vous pouvez vérifier que cette interface a récupéré une adresse IP. Pour cela utilisez la commande : :: ip a Ici la commande nous donne comme adresse IP : 192.168.1.15 Nous pouvons vérifier que nous avons bien le réseau en tapant la commande : :: ping archlinux.org PING archlinux.org (95.217.163.246) 56(84) bytes of data. 64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=63 time=42.4 ms 64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=63 time=43.0 ms ^C --- archlinux.org ping statistics --- 2 packets trnsmitted, 2 received, 0% packet loss, time 1003ms rtt min/max/mdev = 42.437/42.718/42.999/0.281 ms Appuyez sur les touches + en même temps pour arrêter la commande et vérifiez que tous les ping soient passés (``0% loss``). Si votre interface n'a pas récupéré d'adresse IP, il faut la configurer manuellement. Je pars du principe que votre Box utilise le réseau 192.168.1.0/24 pour votre réseau local. Exécutez les commandes suivantes pour configurer votre interface : :: ip address add 192.168.1.15/24 192.168.1.255 + dev enp0s3 .. important:: Vérifiez que cette adresse n'est pas déjà utilisée sur votre réseau. Si cela est le cas et que vous avez un conflit d'adresse ip, veuillez utiliser la commande ci-dessous avant de réassigner une nouvelle adresse à votre interface réseau : :: ip address del 192.168.1.15/24 dev enp0s3 On ajoute une route (adresse de la passerelle) pour accéder à l'Internet : :: ip route add 192.168.1.254 via address dev enp0s3 Maintenant vous devriez avoir accès à l'Internet, pour cela utilisez la commande ``ping`` vue ci-dessus. III.4 - Mise à jour de l'heure système ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Exécutez la commande suivante : :: timedatectl set-ntp true III.5 - Partitionnement du disque ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C'est probablement l'étape la plus importante. Les disques sur GNU/Linux ont des noms comme ``/dev/sda``, ``/dev/nvme0n1`` ou ``/dev/mmcblk0``. Dans le cas de ce Dell Latitude E6420 équipé d'un disque de type SSD 512 GB, il sera identifié comme ``/dev/sda``. .. note:: Pour les ordinateurs les plus récents ce sera plutôt des disques de type NVMe (``/dev/nvme0n1``). Pour ce disque dur nous allons appliquer le schéma de partitionnement suivant : .. list-table:: Partitionnement du disque :widths: 25 25 25 25 :header-rows: 1 * - Partition - Taille - Type - Point de montage * - /dev/sda1 - 512 MB - vfat - /mnt/boot * - /dev/sda2 - 8 GB - swap - * - /dev/sda3 - Tout le reste - LVM - Pour cela exécutez les commandes suivantes. On vérifie le nom de notre disque dur : :: fdisk -l Disk /dev/sda : 512 GiB Disk Model : Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Le disque est bien identifié sous le nom ``/dev/sda``. Début du partitionnement : :: fdisk /dev/sda Command (m for help): g Created a new GPT disklabel (GUID : XXXXX). Command (m for help): n Partition number (1-128, default 1): First sector (2048-XXXXXXXXXX, default 2048): Last Sector : +512M Created a new partition 1 of type 'Linux filesystem' and of size 512 MiB. Command (m for help): n Partition number (2-128, default 2): First sector (1050624-XXXXXXXXXX, default 1050624): Last Sector : +8G Created a new partition 2 of type 'Linux filesystem' and of size 8 GiB. Command (m for help): n Partition number (3-128, default 3): First sector (1050624-XXXXXXXXXX, default 1050624): Last Sector : +20G Created a new partition 2 of type 'Linux filesystem' and of size 20 GiB. Command (m for help): n Partition number (4-128, default 4): First sector (2099200-XXXXXXXXXX, default 2099200): Last Sector : Created a new partition 3 of type 'Linux filesystem' and of size 483 GiB. Command (m for help): t Partition number (1-4, default 4): 1 Partition type or alias (type L to list all): 1 Changed type of partition 'Linux filesystem' to 'EFI System' Command (m for help): t Partition number (1-4, default 4): 2 Partition type or alias (type L to list all): 19 Changed type of partition 'Linux filesystem' to 'Linux swap' Command (m for help): t Partition number (1-4, default 4): Partition type or alias (type L to list all): 43 Changed type of partition 'Linux filesystem' to 'Linux LVM' Command (m for help): w The partition tables has been altered. Calling ioctl() to re-read partition table. Syncing disk. Le nouveau schéma de partitionnment est en place. Maintenant nous allons créer les volumes logiques dans notre partition 'Linux LVM'. Pour cela exécutez les commandes suivantes : :: pvcreate /dev/sda4 Physical volume "/dev/sda4" successfully created. vgcreate sys /dev/sda4 Volume group "sys" successfully created lvcreate -L 20G -n usr sys Logical volume "usr" created. lvcreate -L 20G -n var sys Logical volume "var" created. lvcreate -L 10G -n tmp sys Logical volume "tmp" created. lvcreate -L 100G -n opt sys Logical volume "opt" created. lvcreate -l 100%FREE -n home sys Logical volume "home" created. Vous pouvez voir les nouvelles partitions, toujours avec la même commande : :: fdisk -l III.6 - Formatage des partitions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Pour formater les partitions, exécutez les commandes suivantes : :: # Partition EFI System mkfs.fat -F 32 /dev/sda1 # Partition swap mkswap /dev/sda2 # Partition / mkfs.ext4 -m0 /dev/sda3 # Partition /usr mkfs.ext4 -m0 /dev/mapper/sys-usr # Partition /var mkfs.ext4 -m0 /dev/mapper/sys-var # Partition /tmp mkfs.ext4 -m0 /dev/mapper/sys-tmp # Partition /home mkfs.ext4 -m0 /dev/mapper/sys-home III.7 - Montage des partitions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Exécutez les commandes : :: mount /dev/sda3 /mnt mount --mkdir /dev/sda1 /mnt/boot mount --mkdir /dev/mapper/sys-usr /mnt/usr mount --mkdir /dev/mapper/sys-var /mnt/var mount --mkdir /dev/mapper/sys-tmp /mnt/tmp mount --mkdir /dev/mapper/sys-home /mnt/home swapon /dev/sda2 III.8 - Installation ~~~~~~~~~~~~~~~~~~~~ Installation des paquets essentiels : :: pacstrap /mnt base linux linux-firmware .. note:: Si vous ne voulez pas la dernière version du noyau (la 5.18 actuellement) mais une version LTS (plus stable, mais plus ancienne) vous pouvez remplace linux par linux-lts. La commande à exécuter sera alors : :: pacstrap /mnt base linux-lts linux-firmware Creation du fichier ``/etc/fstab`` Pour créer ce fichier exécutez la commande : :: genfstab -U /mnt >> /mnt/etc/fstab On se ``chroot`` avec la commande : :: arch-chroot /mnt On fixe le fuseau horaire avec la commande : :: ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime Pour la/les locales du système, exécutez les commandes suivantes : :: # Installation de vi pacman -S vi # Édition du fichier /etc/locale.gen # Décommentez la ligne fr_FR.UTF-8 # Activer la locale locale-gen # Créez le fichier /etc/locale.conf echo "LANG=fr_FR.UTF-8" > /etc/locale.conf Définissez votre mappage clavier en mode console : :: echo "KEYMAP=fr-latin9" > /etc/vconsole.conf Déclarez le nom de votre machine : :: echo "archlinux" > /etc/hostname Si vous êtes en DHCP, ajoutez et activez au démarrage le paquet suivant : :: pacman -S dhcpcd systemctl enable dhcpcd .. important:: Si vous avez déclarez une partition de type LVM veuillez : 1 - installer le paquet suivant : :: pacman -S lvm2 2- modifier le fichier ``/etc/mkinitcpio.conf`` en modifiant les paramètres suivants : :: HOOKS=(base udev ... block lvm2 filesystems) par : :: HOOKS=(base systemd ... block lvm2 filesystems) NB : Si vous avez une partition /usr séparée de la racine de votre futur système, il faut, toujours dans la variable HOOKS ce ce fichier, rajouter les paramètres : :: usr fsck shutdown soit : :: HOOKS=(base systemd autodetect modconf block lvm2 filesystems keyboard usr fsck shutdown) Création d'un nouveau ``initramfs`` avec la commande : :: mkinitcpio -P On change le mot de passe ``root`` avec la commande : :: passwd III.9 - Chargeur de démarrage ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nous utiliserons comme chargeur de démarrage ``GRUB``, pour cela exécutez les commandes suivantes : :: pacman -S grub efibootmgr grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB grub-mkconfig -o /boot/grub/grub.cfg III.10 - Redémarrage du système ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Pour quitter le mode "Chroot", appuyez sur les touches + ou en tapant ``exit``. Démontez toutes les partitions montées sur ``/mnt`` avec la commande : :: umount -R /mnt Et redémarrez le système : :: reboot III.11 - Ajout d'un utilisateur ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Afin de ne pas utiliser votre nouveau système GNU/Linux directement en ``root`` ce qui est très dangereux, il faut créer un compte normal. Pour cela utiliser les commandes suivantes : :: useradd -c "Normal user" -m -s /bin/bash nuser passwd nuser III.12 - sudo ~~~~~~~~~~~~~ Si vous voulez à partir de ce nouvel utilisateur exécuter des commandes en tant que ``root`` avec la commande ``sudo``, il faut installer le paquet suivant : :: pacman -S sudo Et le paramétrer : :: chmod u+w /etc/sudoers sed -i -e "s/\# \%sudo/\%sudo/g" /etc/sudoers chmod u-w /etc/sudoers groupadd -g 972 sudo gpasswd -a nuser sudo Vous pouvez maintenant vous connecter en tant qu'utilisteur ``nuser`` et utiliser la commande ``sudo`` pour exécuter des commandes en tant que ``root``.